package Bi_Tree.level_traversal;

import Bi_Tree.TreeNode;

import java.util.LinkedList;
import java.util.Queue;

//二叉树的最大深度
public class lc104 {
    public int maxDepth(TreeNode root) {
        //层序遍历
        Queue<TreeNode> queue=new LinkedList<>();
        if(root==null){
            return 0;
        }
        int result=0;
        TreeNode node=root;
        queue.offer(node);
        while(!queue.isEmpty()){
            //  List<Integer> list=new ArrayList<>();
            int len=queue.size();
            while(len>0){
                node=queue.poll();
                if(node.left!=null) queue.offer(node.left);
                if(node.right!=null) queue.offer(node.right);
                len--;
            }
            result++;
        }
        return result;

    }
    public int MaxDepth(TreeNode root){
        //递归法
        //输入输出： 根节点；最大深度
        //递归终止条件：节点空
        if(root==null){
            return 0;
        }
        //单层递归逻辑
        int maxleft=MaxDepth(root.left);
        int maxright=MaxDepth(root.right);
        return Math.max(maxleft,maxleft)+1;
    }
}
